package co.yixiang.yshop.module.order.service.storeaftersales;

import co.yixiang.yshop.framework.common.pojo.PageResult;
import co.yixiang.yshop.module.order.controller.admin.storeaftersales.vo.StoreAfterSalesPageReqVO;
import co.yixiang.yshop.module.order.controller.admin.storeaftersales.vo.StoreAfterSalesRespVO;
import co.yixiang.yshop.module.order.controller.admin.storeaftersales.vo.StoreAfterSalesUpdateReqVO;
import co.yixiang.yshop.module.order.dal.dataobject.storeaftersales.StoreAfterSalesDO;

import javax.validation.Valid;

/**
 * 售后记录 Service 接口
 *
 * @author yshop
 */
public interface StoreAfterSalesService {


    /**
     * 更新售后记录
     *
     * @param updateReqVO 更新信息
     */
    void updateStoreAfterSales(@Valid StoreAfterSalesUpdateReqVO updateReqVO) throws Exception;

    /**
     * 同意用户的售后请求
     * @param id
     * @throws Exception
     */
    void taskAfterSalesConfirm(Long id) throws Exception;

    /**
     * 取消售后
     * @param id
     * @throws Exception
     */
    void taskAfterSalesCancel(Long id) throws Exception;

    /**
     * 立即退款
     *
     * @param id 编号
     */
    void payStoreAfterSales(Long id) throws Exception;


    /**
     * 获得售后记录
     *
     * @param id 编号
     * @return 售后记录
     */
    StoreAfterSalesDO getStoreAfterSales(Long id);


    /**
     * 获得售后记录分页
     *
     * @param pageReqVO 分页查询
     * @return 售后记录分页
     */
    PageResult<StoreAfterSalesRespVO> getStoreAfterSalesPage(StoreAfterSalesPageReqVO pageReqVO);


}
